<h1>Reporte de Efectivo Desglosado</h1>
<table > 
    <?php
    include_once '../../models/Factura.php';
    include_once '../../models/Nota.php';
    include_once '../../models/Deposito.php';
    
    $strFactura = "";
    
    $totalFacts = new Factura(null, null, null, null);
    $totalNots = new Nota(null, null, null, null, null);
    $totalDeps = new Deposito(null, null, null, null);
    
    //Empezamos desde el Enero del 2013
    $mes = 5;
    $anio = 2013;
    
    //Variables que guardan la cantidad de DIFERENCIA del periodo pasado
    $periAnt = 373371.26;
    
    do {
        
        //Obtenemos las facturas, depositos y notas para el reporte
        $facturas = $totalFacts->getFacturasReporte($mes, $anio);
        $notas = $totalNots->getNotasReporte($mes, $anio);
        $depositos = $totalDeps->getDepositosReporte($mes, $anio);
        
        //Obtenemos la longitud de la consulta con más renglones, para ponerla como limite en el siguiente ciclo
        if ((mysql_num_rows($facturas) >= mysql_num_rows($notas)) && (mysql_num_rows($facturas) >= mysql_num_rows($depositos))) {
            $longArrs = mysql_num_rows($facturas);
        } else if ((mysql_num_rows($notas) >= mysql_num_rows($facturas)) && (mysql_num_rows($notas) >= mysql_num_rows($depositos))) {
            $longArrs = mysql_num_rows($notas);
        } else {
            $longArrs = mysql_num_rows($depositos);
        }
        
        if ($longArrs > 0) {
            //Ponemos un renglon con el nombre del mes y el año
            $strFactura .= "<tr bgcolor='#0040FF'>". 
                                "<td colspan='8'>". date("M-Y", mktime(0, 0, 0, $mes, 1, $anio)) ."</td>". 
                            "</tr>";
            //Variables que acumularan el total de las cantidades, según la consulta
            $acumFac = 0;
            $acumNot = 0;
            $acumDep = 0;

            $strFactura .= "<tr>
                            <th bgcolor='#243B0B'>&nbsp;&nbsp;No. Factura&nbsp;&nbsp;</th>
                            <th bgcolor='#243B0B'>&nbsp;&nbsp;&nbsp;&nbsp;Fecha&nbsp;&nbsp;&nbsp;&nbsp;</th>
                            <th bgcolor='#243B0B'>&nbsp;&nbsp;&nbsp;&nbsp;Monto&nbsp;&nbsp;&nbsp;&nbsp;</th>
                            <th bgcolor='#0B6138'>&nbsp;&nbsp;No. Nota&nbsp;&nbsp;</th>
                            <th bgcolor='#0B6138'>&nbsp;&nbsp;&nbsp;&nbsp;Fecha&nbsp;&nbsp;&nbsp;&nbsp;</th>
                            <th bgcolor='#0B6138'>&nbsp;&nbsp;&nbsp;&nbsp;Monto&nbsp;&nbsp;&nbsp;&nbsp;</th>
                            <th bgcolor='#0B243B'>&nbsp;&nbsp;&nbsp;&nbsp;Fecha&nbsp;&nbsp;&nbsp;&nbsp;</th>
                            <th bgcolor='#0B243B'>&nbsp;&nbsp;Depositos&nbsp;&nbsp;</th>
                        </tr>";

            //Esté ciclo recorre las consultas, termina hasta que se recorren todos los renglones de la consulta más larga
            for ($i = 0; $i < $longArrs; $i++) {

                //Recorremos cada renglon de las consultas
                $rowFac = mysql_fetch_array($facturas);
                $rowNot = mysql_fetch_array($notas);
                $rowDep = mysql_fetch_array($depositos);

                $strFactura .= '<tr>';

                //Si el renglon ya esta vacio, no ponemos nada
                $strFactura .= $rowFac != FALSE ? "<td>$rowFac[numfactura]</td><td>$rowFac[fechaemision]</td><td>$". $rowFac['monto'] * 1.16 ."</td>" : "<td></td><td></td><td></td>";
                $strFactura .= $rowNot != FALSE ? "<td>$rowNot[numNota]</td><td>$rowNot[fecha]</td><td>$". $rowNot['montoNota'] * 1.16 ."</td>" : "<td></td><td></td><td></td>";
                $strFactura .= $rowDep != FALSE ? "<td>$rowDep[fecha]</td><td>$$rowDep[monto]</td>" : "<td></td><td></td>" ;
                $strFactura .= '</tr>';

                $acumFac += $rowFac['monto'] * 1.16;
                $acumNot += $rowNot['montoNota'] * 1.16;
                $acumDep += $rowDep['monto'];
            }

            //Ponemos el total de TODAS las facturas, notas y depositos
            $strFactura .= '<tr>';
                $strFactura .= "<td></td><td></td><td bgcolor='#FFFF00'>".$acumFac."</td>";
                $strFactura .= "<td></td><td></td><td bgcolor='#FFFF00'>".$acumNot."</td>";
                $strFactura .= "<td></td><td bgcolor='#FFFF00'>".$acumDep."</td>";
            $strFactura .= '</tr>';

            //Periodo Anterior
            $strFactura .= '<tr>';
                $strFactura .= "<td></td><td></td><td></td><td></td><td></td><td></td>";
                $strFactura .= "<td>Periodo Anterior: </td>";
                $strFactura .= "<td bgcolor='". ( $periAnt >= 0 ? "#00FFFF" : "red" ) ."'>$ ".($periAnt)."</td>";
            $strFactura .= '</tr>';

            //Diferencia
            $strFactura .= '<tr>';
                $strFactura .= "<td></td><td></td><td></td><td></td><td></td><td></td>";
                $strFactura .= "<td>Diferencia: </td>";
                $strFactura .= "<td bgcolor='". ( ($periAnt + $acumFac - $acumDep - $acumNot) > 0 ? "#00FFFF" : "red" ) ."'>$ ".($periAnt + $acumFac - $acumDep - $acumNot)."</td>";
            $strFactura .= '</tr>';

            //El resultado de ESTE periodo es sumado al perido ANTERIOR
            $periAnt = $periAnt + $acumFac - $acumDep - $acumNot;

            //Avanzamos el mes cada iteración
            $mes++;
            //Cuando el mes llego a 12, cambiamos el año y volvemos a enero
            if ($mes == 13) {
                $mes = 1;
                $anio++;
            }
        }
        
        //El ciclo terminara hasta que todas las consultas regresen 0 renglones
    } while (mysql_num_rows($facturas) != 0 && mysql_num_rows($notas) != 0 && mysql_num_rows($depositos) != 0);
    
    //Obtenemos los total de Facturas, Depositos y Notas
    $totalFacts = $totalFacts->obtenerTotalFacturas();
    $totalDeps = $totalDeps->obtenerTotalDepositos();
    $totalNots = $totalNots->obtenerTotalNotas();
    
    //Ponemos el total de TODAS las facturas, notas y depositos
    $strFactura .= '<tr bgcolor="#0080FF">';
    $strFactura .= "<td colspan='8'> TOTALES </td>";
    $strFactura .= '</tr>';
    
    //Ponemos el total de TODAS las facturas, notas y depositos
    $strFactura .= '<tr>';
        $strFactura .= "<td></td><td></td><td bgcolor='#0080FF'> ".$totalFacts."</td>";
        $strFactura .= "<td></td><td></td><td bgcolor='#0080FF'> ".round($totalNots, 2, PHP_ROUND_HALF_DOWN)."</td>";
        $strFactura .= "<td></td><td bgcolor='#0080FF'> ".$totalDeps."</td>";
    $strFactura .= '</tr>';
    
    $strFactura .= '<tr>';
    $strFactura .= "<td></td><td></td><td></td><td></td><td></td><td></td>";
    $strFactura .= "<td bgcolor='#5858FA'>Notas + Depositos</td>";
    $strFactura .= "<td bgcolor='#5858FA'>".round(( $totalDeps + $totalNots), 2, PHP_ROUND_HALF_DOWN)."</td>";
    $strFactura .= '</tr>';
    
    //La direfencia Total es el TOTALDEPOSITOS más el TOTALNOTAS menos TOTALFACTURAS
    $difeTotal = $totalDeps + $totalNots - $totalFacts;
    
    $strFactura .= '<tr >';
    $strFactura .= "<td></td><td></td><td></td><td></td><td></td><td></td>";
    $strFactura .= "<td bgcolor='". ( $difeTotal > 0 ? "#00FFFF" : "red" ) ."'>Diferencia Total</td>";
    $strFactura .= "<td bgcolor='". ( $difeTotal > 0 ? "#00FFFF" : "red" ) ."'>".round(( $difeTotal ), 2, PHP_ROUND_HALF_DOWN)."</td>";
    $strFactura .= '</tr>';
    
    echo $strFactura;
    ?>  
</table>